// class成员：分为两类
// 1. 实例成员： 直接写在class中的属性和方法，而且没有static
//    特点: 只能通过实例对象.xxx去访问
// 2. 静态成员： class中有static关键字的属性和方法
//    特点： 只能通过类名.xxx去访问

// static关键字，作用：将一个实例成员，变为静态成员

import PropTypes from 'prop-types';
import React, { Component } from 'react';
export default class App extends Component {
  render() {
    return (
      <div>
        <Child title={''}></Child>
      </div>
    );
  }
}

class Child extends React.Component {
  static defaultProps = {
    color: 'red',
  };

  static propTypes = {
    title: PropTypes.number,
    color: PropTypes.string.isRequired,

    isShow: PropTypes.bool,
    fn: PropTypes.func,
    obj: PropTypes.shape({
      name: PropTypes.string,
      age: PropTypes.number,
    }),
    name: PropTypes.element,
  };

  render() {
    const { color } = this.props;
    return <div>{color}</div>;
  }
}
